Перейти к основному содержимому

SourceCraft - отечественная альтернатива Git

Разработчику Архитектору Инженеру

SourceCraft - отечественная альтернатива Git

Описание платформы

SourceCraft — это облачная платформа для полного цикла разработки, тестирования, сборки и сопровождения программного обеспечения от компании Яндекс B2B Tech.

Запуск сервиса состоялся в феврале 2025 года как ответ на ограничения использования зарубежных аналогов в условиях меняющегося рынка.

Платформа ориентирована на DevOps-процессы и предоставляет инструментарий для организации эффективного жизненного цикла разработки (SDLC). Работает в виде веб-приложения с поддержкой интеграции в популярные среды разработки.

Основные компоненты архитектуры SourceCraft включают инструменты управления кодом, системы непрерывной интеграции и доставки, встроенные средства искусственного интеллекта для помощи в программировании. Позиционирование сервиса включает создание пространства для безопасной работы с открытым и закрытым исходным кодом российского производителя.

Платформа поддерживает работу репозиториев Git с полным набором операций версионирования. Размещение инфраструктуры внутри страны исключает риски блокировок и обеспечивает стабильную работу для команд из России.

ХарактеристикаЗначение
Дата запускаФевраль 2025
ПроизводительЯндекс B2B Tech
Тип платформыОблачный сервис SaaS
ИнтеграцияVSCode, JetBrains IDE
AI-ассистентCode Assistant
Поддержка языковБолее 30
CI/CDВстроенный пайплайн
Хостинг сайтовSourceCraft Sites

Архитектура взаимодействия

Компоненты системы взаимодействуют по принципу распределённой архитектуры. Пользователи получают доступ к функционалу через веб-браузер или подключаются к платформе с использованием внешних IDE.

Веб-интерфейс предоставляет полный набор инструментов без необходимости установки дополнительного ПО. Подключение к внешним средам разработки происходит через плагины и расширения.

Интеграция с Yandex Cloud позволяет выполнять деплой приложений автоматически после прохождения всех этапов проверки кода. Это уменьшает количество ручных операций и сокращает время между коммитом и развёртыванием в продакшн.


SourceCraft Code Assistant

SourceCraft Code Assistant — это нейросетевой помощник разработчика, встроенный непосредственно в платформу. Ассистент использует модели машинного обучения для анализа контекста кода и генерации рекомендаций.

Функционал инструмента охватывает автоматическое дополнение кода в реальном времени при вводе символов. Система анализирует структуру проекта, определяет шаблоны использования функций и предлагает соответствующие варианты завершения.

Языки поддержки

Ассистент работает с более чем тридцатью языками программирования. Поддерживаются основные технологии разработки корпоративного уровня.

ЯзыкПоддержкаФичи
PythonПолнаяАвтодополнение, анализ, документация
GoПолнаяРекомендации по синтаксису
JavaПолнаяОбработка исключений, коллекций
C++ПолнаяУправление памятью, оптимизация
KotlinПолнаяМультиплатформенная разработка
JavaScriptПолнаяFrontend и backend контексты
TypeScriptПолнаяСтатическая типизация
CSharpПолная.NET экосистема

Пример работы ассистента в файле кода:

def calculate_average(numbers):
total = 0
for num in numbers:
total += num
average = total / len(numbers) if numbers else 0
return round(average, 2)

print(calculate_average([10, 20, 30, 40]))

Ассистент может предложить альтернативные реализации функции calculate_average с использованием встроенных методов языка Python. Система выявляет потенциальные проблемы с делением на ноль при пустой коллекции и предлагает обработку этого случая.

Режимы работы ассистента

Агентный режим рассматривает задачу как комплексное выполнение цепочки действий для достижения цели пользователя.

РежимОписаниеВозможности
АвтодополнениеПодсказки при вводе кодаБыстрая вставка фрагментов
АнализПроверка качества кодаВыявление проблем стиля
РефакторингУлучшение структурыОптимизация методов
ДокументацияГенерация описанийСоздание комментариев

Настройки конфигурации позволяют включать или отключать отдельные функции ассистента в зависимости от потребностей команды.

code_assistant:
enabled: true
languages:
- python
- java
- go
auto_complete: true
security_scan: true
documentation: true
refactoring: true

Управление кодом и репозитории

Репозиторий — это централизованное хранилище для файлов проекта с полной историей изменений. Создание нового репозитория в SourceCraft происходит через веб-интерфейс.

Основные операции с репозиториями включают клонирование, пушинг, паддинг и управление ветками. Поддерживаются все стандартные команды Git для согласования работы в команде.

# Клонирование репозитория
git clone https://sourcecraft.dev/project/repo.git

# Добавление удалённого источника
git remote add origin https://sourcecraft.dev/user/project.git

# Создание новой ветки
git checkout -b feature/new-feature

# Коммит изменений
git add src/file.py
git commit -m "Добавление новой функциональности обработки данных"

# Пушинг в удалённый репозиторий
git push origin feature/new-feature

Pull Request workflow

Процесс создания запроса на слияние начинается с формирования ветки из основной кодовой базы.

  1. Создание новой ветки для функционала;
  2. Внесение изменений и создание коммитов;
  3. Отправка изменений в удалённый репозиторий;
  4. Открытие Pull Request через веб-интерфейс;
  5. Назначение ревьюеров и обсуждение изменений;
  6. Прохождение проверок CI/CD;
  7. Слияние в основную ветку после одобрения.

Каждое изменение требует прохождения процедуры код-ревью. Участники могут оставлять комментарии к конкретным строкам кода. Система отслеживает статус каждого запроса и уведомляет участников о необходимых действиях.

Правила ревью

ПравилоОписаниеТребование
Размер PRМаксимальное количество строк≤ 400 строк
ТестыНаличие покрытия≥ 80% покрытие
КомментарийОписание измененийОбязательно
ЛинтыПрохождение проверокБез ошибок
КодстайлСледование стандартамЕдиный стиль

Импортирование репозиториев

Платформа поддерживает импорт проектов из сторонних систем управления версиями.

# Инициализация импорта
sc import --from github --url https://github.com/user/repo.git

# Настройка прав доступа
sc permissions set --repo project --access private

# Синхронизация истории
sc sync --history

Этот процесс включает миграцию всей истории коммитов, тикетов и pull request'ов из внешнего репозитория.


CI/CD пайплайны

Непрерывная интеграция и доставка — это практика автоматизации процессов разработки программного обеспечения. Платформа SourceCraft CI/CD обеспечивает построение конвейеров сборки через YAML конфиги.

Конфигурационные файлы пишутся в формате .sourcecraft/ci.yml внутри репозитория. Каждый файл определяет этапы сборки, тестирования и развёртывания приложения.

stages:
- lint
- build
- test
- deploy

lint:
stage: lint
script:
- npm run lint
- python -m flake8 .
artifacts:
reports:
coverage_report: coverage.xml
only:
- main
- develop

build:
stage: build
image: node:18-alpine
script:
- npm install
- npm run build
artifacts:
paths:
- dist/
expire_in: 7 days

test:
stage: test
image: node:18-alpine
script:
- npm test
coverage: '/Test Result.*([0-9]{1,3})%/'
rules:
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_COMMIT_BRANCH =~ /^release\/.*/

deploy:
stage: deploy
image: alpine:latest
script:
- cp dist/* /var/www/html/
environment:
name: production
url: https://example.com
only:
- main
- tags

Runners и агенты исполнения

Runners представляют собой исполняющие агенты, которые обрабатывают задачи пайплайнов. SourceCraft поддерживает организацию собственных runners для повышения производительности.

Команда регистрации runner выглядит следующим образом:

# Получение токена для регистрации
curl -X POST https://sourcecraft.dev/api/v1/runners/token \
-H "Authorization: Bearer YOUR_TOKEN" \
-o runner-token.txt

# Регистрация runner
./run.sh register --url https://sourcecraft.dev \
--token $(cat runner-token-token.txt) \
--name my-runner-01 \
--executor docker \
--environment "docker:v20"

Конфигурация runner может включать ограничения по CPU, памяти, дисковому пространству и количеству одновременных задач.


Безопасность SecOps

SecOps — набор инструментов для обеспечения безопасности кода и инфраструктуры. Платформа включает встроенные сканеры уязвимостей и средств защиты данных.

Основные механизмы безопасности включают шифрование данных при передаче по протоколам HTTPS/TLS и защиту от несанкционированного доступа к репозиториям.

Методы проверки

Тип проверкиОписаниеРезультат
Секреты в кодеОбнаружение паролей и ключейПредупреждение
Уязвимости зависимостейПоиск известных баговБлокировка слияния
SQL инъекцииАнализ запросов к БДАвтоматический фидбек
XSS атакиПроверка вывода данныхРекомендации по исправлению

Aутентификация и авторизация

Поддержка SSO обеспечивает единый вход для всех членов команды через корпоративные провайдеры идентификации.

security:
sso:
enabled: true
provider: azure_ad
domains:
- company.ru
mfa:
required: true
methods:
- token
- sms
api_keys:
rotation_days: 90

Логирование всех действий пользователей позволяет отслеживать изменения и идентифицировать подозрительную активность. Регулярное обновление компонентов безопасности защищает от новых угроз.

Резервное копирование

Платформа предоставляет возможность экспорта данных и создания резервных копий проектов. Администраторы могут выгрузить информацию в форматах JSON, CSV, XML или создать бэкапы в архивах.

# Создание резервной копии
sc backup create --project project --output backup.tar.gz

# Восстановление из бэкапа
sc backup restore --file backup.tar.gz --project project

Интеграция с IDE

Интеграция со средой разработки — функция для подключения популярных IDE к платформе SourceCraft. Поддерживаются VSCode и продукты семейства JetBrains.

Расширения устанавливаются через магазины соответствующих платформ. После активации пользователь получает доступ ко всем функциям SourceCraft прямо внутри редактора кода.

Расширение для VSCode

// package.json
{
"name": "sourcecraft-vscode",
"version": "1.0.0",
"engines": {
"vscode": "^1.75.0"
},
"activationEvents": [
"onLanguage:python",
"onLanguage:javascript"
],
"contributes": {
"commands": [
{
"command": "sourcecraft.sync",
"title": "Sync to SourceCraft"
}
]
}
}

Расширение для JetBrains

Интеграция через плагин marketplace. Позволяет создавать проекты, добавлять переменные окружения и управлять ветками.

Настройка соединения

ide_config:
platform_url: https://sourcecraft.dev
authentication: oauth2
auto_push: true
notify_changes: true

Пользователь получает уведомления о событиях в проекте прямо в интерфейсе IDE. Возможность работы offline с последующей синхронизацией повышает мобильность команды.


SourceCraft Sites

SourceCraft Sites — инструмент для публикации статических сайтов из репозиториев. Это позволяет командам быстро создавать документацию, лендинги и другие ресурсы для своих проектов.

Процесс публикации включает размещение файлов сайта в специальной директории и деплой по команде git push в основную ветку.

Пример структуры проекта для SourceCraft Sites:

website/
├── _site/ # Готовый сайт после сборки
├── docs/ # Документы проекта
├── assets/ # Изображения, стили, скрипты
├── index.html # Главная страница
├── config.md # Конфигурация страницы
└── .gitignore # Игнорируемые файлы

Параметры конфигурации включают настройку домена, темы оформления, метаданные и другие опции публикации.


Сравнение с конкурентами

ХарактеристикаSourceCraftGitLabGitHubBitbucket
ЛокализацияРоссийскаяМеждународнаяМеждународнаяАвстралийская
AI-ассистентCode AssistantMergifyCopilotSmart Compose
IDE поддержкаVSCode, JetBrainsВсеОсновныеСтандартные
CI/CDНативныйNativeActionsPipelines
СтоимостьFreemiumOpen CoreFreemiumFree/Paid
РазмещениеРоссияМир/ЕвропаМирМир

Платформа отличается полной русскоязычной поддержкой и отсутствием рисков блокировок для отечественных разработчиков. Весь интерфейс выполнен на русском языке.